package JurisPro.modelo.banco;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import JurisPro.modelo.Local;


public class LocalDAO {
	
	private static LocalDAO singleton = null;
	
	public static LocalDAO getInstance() {
		if(singleton == null)
			singleton = new LocalDAO();
		return LocalDAO.singleton;
	}
	
	
	public int insertNewLocal(Local local) {
		String sql = "INSERT INTO Local " +
			"(Cidade, Estado) VALUES (?, ?)";
		PreparedStatement state = Conexao.getInstance().getPrepState(sql);
		int rows = 0;
		try {
			state.setString(1, local.getCidade());
			state.setString(2, local.getEstado());
			rows = state.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}										
		return rows;		
	}
	
	
	public ArrayList<Local> selectLocalAll() {
		String sql = "SELECT IDLocal, Cidade, Estado FROM Local;";
		ResultSet rs = Conexao.getInstance().selectComand(sql);
		Local local = null;
		ArrayList<Local> localidades = new ArrayList<Local>();
		try {
			while (rs.next()) {
				local = new Local(rs.getInt("IDLocal"), rs.getString("Cidade"), rs.getString("Estado"));
				localidades.add(local);
			}
			rs.close();	
			
		} catch (SQLException e) {
			e.printStackTrace();
		}		
		return localidades;
	}


	public int deleteLocal(Local local) {
		String sql = "DELETE Local WHERE Cidade = ? and Estado = ?";
	PreparedStatement state = Conexao.getInstance().getPrepState(sql);
	int rows = 0;
	try {
		state.setString(1, local.getCidade());
		state.setString(2, local.getEstado());
		rows = state.executeUpdate();
		
	} catch (SQLException e) {
		e.printStackTrace();
	}										
	return rows;	
	}


	
	
}
